<!DOCTYPE html>
<!-- 声明html5标准 -->
<html lang='zh'>
<!-- 这个主要是给搜索引擎看的，搜索引擎不会去判断该站点是中文站还是英文站，所以这句话就是让搜索引擎知道，你的站点是中文站
对html页面本身不会有影响,这些现在都是html规范，你的页面越规范，就越容易被收录 -->

<head>
    <meta charset='UTF-8'>
    <!-- 声明使用UTF-8 Unicode编码，UTF-8编码优先采用的编码 -->
    <meta http-equiv='X-UA-Compatible' content='IE=edge'>
    <!--  X-UA-Compatible是针对IE新加的一个设置 声明兼容到edge -->
    <meta name='viewport' content='width=device-width, initial-scale=no'>
    <!--width:可视区域的宽度，值可为数字或关键词device-width intial-scale:页面首次被显示是可视区域的缩放级别，取值1.0则页面按实际尺寸显示，无任何缩放 -->
    <title>Document</title>
    <!-- 引入vue.js -->
    <script src='./js/vue.js'></script>
</head>

<body>
    <div id='root'>
        <div v-color="'#df8037'">
            我使用了自定义指令.
        </div>
        <div v-color="'rgb(75,238,25)'">
            我是第二个使用了自定义指令
        </div>
        <!-- 数据双向绑定 -->
        <input type="text" v-model="inputValue" v-color="true">
        <input type="text" v-foucs="">
    </div>
    <script>
        // 创建自定义指令. 
        // 总结1: 自定义指令的第一个参数为自定义指令的名字
        //   第二个参数为对象. 对象内承载三个函数
        // 自定义之后引号后内容会被当成变量来处理
        Vue.directive("color", {
            // 第一个函数.  第一个参数为dom 第二个参数为传过来的值;
            // bind函数在一开始绑定标签时指定. 
            bind(el, param) {
            },
            // 当dom元素渲染完成时触发
            inserted(el, parm) {
                debugger
                console.log(el);
                el.style.color = param.value
            },
            // 当组件(标签,dom)发生改变时触发的函数
            // 什么时候dom发生改变? vue 数据发生改变的时候.
            update(el, param) {
                console.log(param)
                if (param.value === true) {
                    el.style.height = "80px"
                }
                debugger
            },
        })
        let vue = new Vue({
            // 选择控制区域,通过选择器去选到他，工作中一般使用id选择器;
            el: '#root',
            // 数据储存位置
            data: {
                inputValue: ''
            },
            // 方法的储存位置
            methods: {},
            // 私有自定义指令. 
            directives: {
                foucs: {
                    bind() { },
                    inserted(el) {
                        debugger
                        el.focus();
                    },
                    update() { }
                }
            }
        })
    </script>
</body>

</html>